In connection with computer networks, e.g. within an enterprise, it is be considered common practice to deploy servers with multiple data processing means—hereinafter also referred to as processors or CPUs—and network interface cards (NICs) to enable the server to deal with higher network traffic and higher processing load. Due to the hardware and the software architecture of these servers in the above-mentioned situations there are a number of issues which can impair the overall performance of networking applications running on the server. For instance, any data handled by a processor on a computer is first brought from the main memory to the processor's cache after which the processor will proceed to work on the data. This may involve multiple read and write procedures. After the processor has finished processing a given amount of data, said data is written from the cache back to main memory. This is much faster than accessing the main memory for every access to the data and dramatically improves performance of the computer in general.
However, on a system with more than one processor, if different processors have to work on the same data, that data will have to be moved from the cache of one processor to the main memory of the computer and from there to the cache of the other processor. This can introduce delays which can have a negative effect on overall system performance. Furthermore, on a prior art system with multiple processors, every network interface card is programmed to interrupt a particular processor when there is data arriving from the computer network, e.g. in the form of an incoming data packet. The respective NIC then hands over the data packet to the processor which will continue to process the packet across various networking layers, e.g. network, transport, session, or presentation layers, until the data is finally placed into the data buffer of the recipient application (application layer). However, as a NIC is programmed to interrupt a particular CPU, and the packet that it receives from the computer network may be destined to an application that is running on a different CPU, the data received from the computer network will have to be transferred to the cache of the processor that is actually running the application. As illustrated above, this will introduce delays, which in turn affect system performance.